查看本地分支:git branch
查看远端分支:git branch -r
刷新远端分支:git remote update origin --prune
拉取远程分支并创建本地分支:git checkout -b 本地分支名x origin/远程分支名x (使用该方式会在本地新建分支x,并自动切换到该本地分支x。)
拉取:
1、Git fetch:Git fetch会将数据拉取到本地仓库 - 它并不会自动合并或修改当前的工作。
2、git pull:git pull是从远程获取最新版本并merge到本地,会自动合并或修改当前的工作。相当于git fetch 和 git merge。
git 强行pull并覆盖本地文件 : 这招很好用
git fetch --all
git reset --hard origin/master
git pull
储藏:
将新的储藏推送到栈上
git stash save "save message"
从git栈中获取到最近一次stash进去的内容,恢复工作区的内容。获取之后,会删除栈中对应的stash
git stash pop
查看储藏
git stash list
将你刚刚储藏的工作重新应用:git stash apply。 如果想要应用其中一个更旧的储藏,可以通过名字指定它,像这样:git stash apply stash@{2}。 如果不指定一个储藏,Git 认为指定的是最近的储藏。
要移除它,你可以运行 git stash drop,加上你希望移除的储藏的名字
git stash drop stash@{0}
清空git储藏栈
git stash clear
关联与推送
情况1 : 本地已经建立好仓库,需要将本地仓库同步至远程仓库
添加本地仓库与远程仓库关联:git remote add origin XXX.git
如果关联错了,修改本地仓库所关联的远程仓库的地址
1 git remote //查看远程仓库名称:origin
2 git remote get-url origin //查看远程仓库地址
3 git remote set-url origin https://github.com/developers-youcong/Metronic_Template.git ( 如果未设置ssh-key,此处仓库地址为 http://… 开头)
强制推送到远程仓库,且覆盖远程代码库(远程库会被情况,完全同步本地)
git push -f --set-upstream origin master:master
情况2 : 本地没有仓库,可以远端建立仓库后,再git clone到本地使用
回滚
git reflog develop
git reset --hard e377f60e28c8b84158
goland git操作:
还原提交:代码和没写一样,提交记录新增一条还原。
撤销提交:和没提交一样,改动的文件恢复未提交状态。
删除提交:和没写一样,代码丢失,提交日志也丢失。可以通过命令行恢复
# git操作 分支A只合并部分提交到分支B
# 不要有没被版本控制的文件
1,切换到分支a git checkout a
2,查看分支b的提交历史 git log b --oneline
3,推荐自动提交:选择合并提交 git cherry-pick abc1234 def5678 (提交自动合并到分支a,保留提交标题和时间)
4,手动提交:(未测试)
git cherry-pick --no-commit abc1234 这是提交的变化会出现到分支a,未提交状态)
git commit --amend --no-edit --date "$(git show -s --format=%ci abc1234)" -m "$(git show -s --format=%s abc1234)" (手动修改提交信息,保留原分支提交日期和标题 )
# 查看0索引的文件
git stash show 0
internal/dbSql/dbSql_init.go | 2 +-
pcf_producer/pcf_ueinfo.go | 1 +
pcf_redis_db/pcf_db.go | 2 +-
pcf_service/pcf_init.go | 641 ++++++++++++++++++++++---------------------
4 files changed, 324 insertions(+), 322 deletions(-)
# 查看差异详情
git stash show -p stash@{0}
更多命令:http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html
git的合并逻辑:
Git 使用“三路合并”算法,它需要三个关键点:
-
Base(共同祖先):分支 A 和 B 分叉时的那个共同提交
-
Ours(当前分支):你当前所在的分支(比如分支 A)
-
Theirs(合并分支):你要合并进来的分支(比如分支 B)
|
|
Base (共同祖先) / \ A (ours) B (theirs) | | 修改了file.txt第10行 修改了file.txt第10行 |
冲突的产生条件
当以下情况发生时,Git 会产生合并冲突:
合并时的处理规则
情况一:无冲突的变更
情况二:冲突的变更(你的问题场景)
总结
「三年博客,如果觉得我的文章对您有用,请帮助本站成长」
共有 0 - git 常用命令